﻿
#ifndef WIFIWIDGET_H
#define WIFIWIDGET_H

#include <QWidget>
#include <Qlabel.h>
#include <QVBoxLayout>
#include <qdebug.h>
#include <Qstring.h>
#include <QPushButton>
#include <QEvent>
#include <QMouseEvent>
#include <QCheckBox>
#include <QLineEdit>
#include <QPropertyAnimation>
#include <QListWidgetItem>
#include "wifimanager.h"
#include "loadinglabel.h"
enum STATUS{
    ENTER,//点击WiFi显示按钮
    CONNECT,//点击连接按钮，显示输入框
    LEAVE, //切换WiFi,隐藏输入框，按钮等控件
    COMPLETE, //完成连接后,显示断开连接
};
class WiFiWidget : public QWidget
{
    Q_OBJECT
public:
    explicit WiFiWidget(QListWidgetItem *pItem,QWidget *parent = nullptr);
    void SetWiFIInfo(WiFiInfo& wifi_info); //设置WiFi信息
    Q_INVOKABLE void SetStatus(STATUS status); //设置状态
    void SetGuid(GUID guid); //设置guid
    Q_INVOKABLE  void stopAnimation();//停止播放动画
protected:

private:
    QListWidgetItem *m_pItem;
    STATUS status;
    GUID m_guid;//网卡唯一标识符
    bool m_connected;
    WiFiInfo m_wifi_info; //wifi信息结构体
    QLabel* m_name_label; //wifi名称label
    QLabel* m_wifi_img; //wifi图片显示
    QPushButton* m_connectButton; //点击连接按钮
    QVBoxLayout *m_pLayoutMain; //垂直布局
    QHBoxLayout* m_pLayoutHBox;//水平布局
    QHBoxLayout* m_pLayoutHBox_button;//存放下一步和取消按钮的水平布局
    QCheckBox *m_pCheckBox; // 勾选框
    QPushButton *m_pBtnWifi; // wifi按钮

    QLabel *m_pLabEditTip; // 编辑框提示文本标签
    QLineEdit *m_pEditPasswd; // wifi密码编辑框
    QLabel *m_pLabErrorTip; // 错误提示文本标签
    QPushButton *m_pBtnNext; // 下一步按钮
    QPushButton *m_pBtnCancel; // 取消按钮
    QWidget *m_pWidgetEdit; // 编辑框Widget

    QLabel *m_pLabVerify; // 验证标签
    QPushButton *m_pBtnConCancel; // 连接取消按钮
    QPushButton *m_pBtnConnected; // 连接完成按钮

    LoadingLabel* m_pLoadingLabel; //加载动画标签

public slots:
    void connect_wifi();//点击连接
    void click_next();//点击下一步
    void click_cancel();//点击取消
    static void OnWlanConnectCallback(PWLAN_CONNECTION_NOTIFICATION_DATA pData, DWORD dwConnectCode);
signals:
    //void complete_();
};

#endif // WIFIWIDGET_H
